/***************************************************************************
 **
 **
 **    Master include file
 **
 **    Used with ARM IAR C/C++ Compiler
 **
 **    (c) Copyright IAR Systems 2007
 **
 **    $Revision: 47021 $
 **
 ***************************************************************************/

#ifndef __INCLUDES_H
#define __INCLUDES_H

#define	NDEBUG

//#include <stdio.h>
#include <string.h>
#include <ctype.h>
//#include <stdlib.h>
//#include <stdbool.h>
//#include <limits.h>
#include <intrinsics.h>
#include <assert.h>
#include <nxp/iolpc2388.h>
#include	"freertos.h"
#include	"task.h"


//#include "arm_comm.h"
//#include "board.h"
#include "sys.h"
typedef	uint32_t	Boolean;
typedef	uint32_t*	pBoolean;

//#define	FALSE	0
//#define	TRUE	1

#ifndef FALSE
#define FALSE (1 == 0)
#endif

#ifndef TRUE
#define TRUE  (1 == 1)
#endif

#define MIN(a, b) (((a) < (b)) ? (a) : (b))
#define _2BL(a)   (uint8_t)(a),(uint8_t)(a>>8)



#include "usb_cnfg.h"
#include "usb_desc.h"
#include "usb_hw.h"
#include "usb_t9.h"
#include "usb_hooks.h"
#include "usb_dev_desc.h"
#include "usb_buffer.h"

#include "cd_class.h"
#include "cdc_desc.h"
#include "cdc_cmd.h"
#define	ENTR_CRT_SECTION(x)		taskENTER_CRITICAL()
#define	EXT_CRT_SECTION(x)		taskEXIT_CRITICAL()

/*inline*/ uint32_t AtomicExchange (uint32_t State, uint32_t* Flag);
//{
//uint32_t Hold;
//  ENTR_CRT_SECTION(0);
//  Hold = *Flag;
//  *Flag = State;
//  EXT_CRT_SECTION(0);
//  return(Hold);
//}


#endif  // __INCLUDES_H
